package thread;

/**
 * 线程的并发执行
 */

class MyThread extends Thread{
    @Override
    public void run() {
        while (true){
            System.out.println("hello world");
            try {
                Thread.sleep(1000);//强制让线程休眠1s,进入阻塞状态
                //1000的含义是1000ms内上不了CPU
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

public class TestDemo2 {
    public static void main(String[] args) {
        Thread thread = new MyThread();
        thread.start();//创建线程

        //这是main方法的线程,两个线程同时发生了并行或者并发
        //宏观区分不了并行并发,取决于系统的调度,所以统称为并发
        while (true){
            System.out.println("hello main");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        //休眠1s后唤醒哪个线程不知道,顺序完全随机(抢占式执行)
    }
}
